package org.ssp.dao;

import java.util.ArrayList;

import org.ssp.pojo.Assister;
import org.ssp.pojo.Task;
import org.ssp.pojo.Travel;
import org.ssp.pojo.User;

public interface TaskDao {
	public abstract int addTask(Task task);//添加任务,返回id
	public abstract ArrayList<Task> findAll();
/*	public abstract int findAll();//task总数
*/	public abstract ArrayList<Task> findAllByAssist(String assistid);//普通管理员的数据
	public abstract void updateName(int id ,String name);
	public abstract void updateResponsibility(int id,String responsibility);
	public abstract void updateDue(int id,String due);
	public abstract void addJoin(int id,String join);
	public abstract void updateContent(int id,String content);
	public abstract int addsubTask(Task task);//添加任务
	public abstract ArrayList<Task> findSubTask(int id);//查找子任务
	public abstract Task findById(int id);//查找任务
	public abstract  void deleteTask(int id);//删除任务
	public abstract ArrayList<Assister> findJoinsById(int id);//某任务的参与人
	public abstract void deleteJoin(String assistid);//删除参与者
	public abstract ArrayList<User> findUserById(int taskid);//查出关联的会员
	public abstract void deleteUserTask(int taskid,String uid);//删除会员关联
	public abstract int addUser(int taskid,String uid);//关联会员
	public abstract void addAttachmentUrl(int taskid,String url,String title);//添加附件
	public abstract  ArrayList<String[]> findAttachment(int id);//任务的附件
	public abstract void deleteAttachment(int id);//删除附件
	public abstract void changeStatus(int status,int id);//任务状态
	public abstract int addTaskTravel(int taskid,int travelid);//添加任务活动关联,返回执行条数
	public abstract ArrayList<Travel> findTravelById(int taskid);//查出关联的活动
	public abstract void deleteTravel(int taskid,int travelid);//删除关联的活动
	public abstract ArrayList<Task> myCreate(String asssitid);//某人创建的所有任务
	public abstract ArrayList<Task> AllTaskFinish();//所有完成的任务
	public abstract ArrayList<Task> TaskFinishByAssistid(String assistid);//
	public abstract ArrayList<Task> unfinishByAssitid(String assistid);//管理员要处理的任务
	public abstract int unfinishCountByAssitid(String assistid);//管理员要处理的任务

	

	/*public abstract ArrayList<Task> findSub(int parentid);//子任务
	public abstract void UpdateStatus(int id,int status);//改变任务的状态
	public abstract ArrayList<Task> findAssistTasks(int assistid,int offset,int rows);//某个assist可见的任务
    public abstract int findAssistTasks(int assistid);//某个assist可见任务的计数
    public abstract void UpdateBackinfo(int id,String backinfo);//更新备份信息
    public abstract Task findById(int id);*/
}
